//导入express
const express = require("express");

//创建express对象
const app = express();

/* //设置响应头  允许跨域
res.setHeader("Access-Control-Allow-Origin", "*");
res.setHeader("Access-Control-Allow-Origin", "http://127.0.0.1:5500"); //只允许某些源进行访问

//设置可以接受前端传递的任何请求头，不止包括预定义的（浏览器固定的请求头），还包括用户自定义的
//同时还要将后端的此方法由post 改为.all 才可以
//(因为还要发送一个method为options类型的校验请求，all接受所有请求方法的请求) 
res.setHeader("Access-Control-Allow-Headers", "*");

res.setHeader("Access-Control-Allow-Method", "*");// 允许所有请求方法
*/

app.get("/server", (req, res) => {
  //设置响应头  允许跨域
  res.setHeader("Access-Control-Allow-Origin", "*");

  //延时测试  3s后返回结果
  setTimeout(() => {
    res.send("hello express get request");
  }, 3000);
});

app.post("/server", (req, res) => {
  //设置响应头  允许跨域
  res.setHeader("Access-Control-Allow-Origin", "*");

  let obj = { name: "ajax" };
  res.send(JSON.stringify(obj));
});

app.all("/server2", (req, res) => {
  //设置响应头  允许跨域
  res.setHeader("Access-Control-Allow-Origin", "*");
  //接受所有的请求头
  res.setHeader("Access-Control-Allow-Headers", "*");
  let obj = { name: "ajax" };
  res.send(JSON.stringify(obj));
});

app.all("/jsonp", (req, res) => {
  //设置响应头  允许跨域
  res.setHeader("Access-Control-Allow-Origin", "*");
  let data = { exists: 1, msg: "用户已存在" };
  let str = JSON.stringify(data);
  res.end(`handle(${str})`);
});

app.all("/jsonp_ajax", (req, res) => {
  const data = { name: "test", city: ["河北", "天津", "北京"] };
  let str = JSON.stringify(data);

  //接收callback参数
  let cb = req.query.callback;

  res.end(`${cb}(${str})`);
});

app.listen(9000, () => {
  console.log("端口监听中...");
});
